package br.catraca.repositorio;
import br.catraca.Dao.Dao;
import br.catraca.modelo.*;
import java.util.List;

public class Repositorio {

	private Dao dao = new Dao();
	
	public List <Administrador> listarAdministrador(String senha, String login){
		
		List <Administrador> administrador = dao.listarObjeto("from administrador where senha = '"+senha+"' and login = '"+login+"' " );
		
		return administrador;
		
		
	}
	
        //ListaTodos os departamentos
	public List <Departamento> listarDepartamentos(){
		
		List <Departamento> departamentos = dao.listarObjeto("from departamento");
		
		return departamentos;
		
	}
        
       public Departamento listarDepartamentoPorNome(String nomeDepartamento){
		
	List <Departamento> departamento = dao.listarObjeto("from departamento where nome = '"+nomeDepartamento+"'");
		
		return departamento.get(0);
	}
       
       
       public List listarDepartamento(String nomeDepartamento){
           List <Departamento> departamento = dao.listarObjeto("from departamento where nome = '"+nomeDepartamento+"'");
		
		return departamento;
           
       }
	
	public boolean excluirDepartamento(String departamento){
		
		Departamento OBTdepartamento  = this.listarDepartamentoPorNome(departamento);
		
		boolean statusExclusao = dao.deletarObjeto(OBTdepartamento);
		
		return statusExclusao;
		
	}
	
	public List listarFuncionarioNoDepartamento (String id_departamento) {
		
	
            List <Funcionario> funcionarios = dao.listarObjeto("from funcionario where id_departamento = '"+id_departamento+"' ");
		
		return funcionarios;
            
                
		
	}
        
        public List listarAlunoNoDepartamento(String id_departamento){
            
            
            List<Aluno> alunos = dao.listarObjeto("from aluno where id_departamento = '"+id_departamento+"'");
            
            return alunos;
        }
        
        public List listarRegistroEntrada(String matricula){
            
            List<RegistroEntrada> registroEntrada = dao.listarObjeto("from registro_entrada where matricula = '"+matricula+"'");
            
            return registroEntrada;
            
        }
        
        public void removerDoDept (Funcionario funcionario){
            
             dao.atualizarFuncionario(funcionario);
            
            
        }
        
        public void removeAlunoDepartamento (Aluno aluno){
            
            dao.atualizarAluno(aluno);
        }
                
        
        
        public List listarTodosFuncionarios(){
            
            List<Funcionario> funcionario = dao.listarObjeto("from funcionario");
            
            return funcionario;
            
        }
        
        public List listarTodosAlunos(){
            
            List<Aluno> aluno = dao.listarObjeto("from aluno");
            
            return aluno;
            
            
        }
        
        public List listarFuncionarioNulo(){
            
            List<Funcionario> funcionario = dao.listarObjeto("from funcionario where id_departamento = null");
            
            return funcionario;
            
        }
        
        public void criarDepartamento(Departamento departamento){
            
            boolean status = dao.inserirObjeto(departamento);
                        
        }
        
        public void associarFuncionario(Funcionario funcionario){
            
            dao.atualizarFuncionario(funcionario);
        }
        
        public void associarAluno(Aluno aluno){
            
            dao.atualizarAluno(aluno);
        }
        
        public Funcionario listarFuncionario (String matricula_associado){
            
            List <Funcionario> funcionarios = dao.listarObjeto("from funcionario where matricula = '"+matricula_associado+"'");
            return funcionarios.get(0);
            
            
        }
        
        public List listarAlunoNoCurso(String curso){
            
            List <Aluno>alunos = dao.listarObjeto("from aluno where curso = '"+curso+"' and id_departamento = null");
            
            return alunos;           
            
        }
        
        public Aluno listarAlunoPorMatricula(String matricula){
            
            List<Aluno> alunos = dao.listarObjeto("from aluno where matricula = '"+matricula+"'");
            return alunos.get(0);
            
        }
        
        
}
